/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controlador;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import negocio.Empleado;


public class ControladorEmpleado extends HttpServlet 
{

   protected void processRequest(HttpServletRequest request, HttpServletResponse response)
           throws ServletException, IOException , ClassNotFoundException 
   {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        HttpSession session = request.getSession(true);
        
        if ("Insertar".equals(request.getParameter("btreg")))
        {   
     
     ArrayList errores = new ArrayList();
     String codigo = request.getParameter("codigo");   
     String ide = request.getParameter("ide");
     String tipo_ide = request.getParameter("tipo_ide");
     String nom = new String(request.getParameter("nom").getBytes("ISO-8859-1"),"UTF-8");
     String ape = new String(request.getParameter("ape").getBytes("ISO-8859-1"),"UTF-8");
     String tel = request.getParameter("tel");
     String direc = request.getParameter("direc");
     String correo = request.getParameter("correo");
     String contrasena = request.getParameter("contrasena");
     String nick = request.getParameter("nick");
     
      if(ide.isEmpty() || tipo_ide.isEmpty() || nom.isEmpty() || ape.isEmpty() || tel.isEmpty() ||direc.isEmpty() || correo.isEmpty() || codigo.isEmpty() || contrasena.isEmpty() || nick.isEmpty())
           {
               errores.add("Todos los campos deben estar llenos");
           }
  else
   {
     
     if (ide.isEmpty())
     {
         errores.add("Falta ingresar la identificación");
     }
      if (tipo_ide.isEmpty())
     {
         errores.add("Falta ingresar el tipo de identificación");
     }
     if (nom.isEmpty())
     {
         errores.add("Falta ingresar el nombre");
     }
     if (ape.isEmpty())
     {
         errores.add("Falta ingresar el apellido");
     }
     if (tel.isEmpty())
     {
         errores.add("Falta ingresar el telefono");
     }
     if (direc.isEmpty())
     {
         errores.add("Falta ingresar la dirección");
     }
     if (correo.isEmpty())
     {
         errores.add("Falta ingresar el correo");
     }
     if (codigo.isEmpty())
     {
         errores.add("Falta ingresar el tipo de usuario");
     }
     if (contrasena.isEmpty())
     {
         errores.add("Falta ingresar la contraseña");
     }
     if (nick.isEmpty())
     {
         errores.add("Falta ingresar el nick");
     }
   } 
    String mensaje;
     if(errores.isEmpty())
     {/*Enviando constructor y enviando datos*/
         Empleado e = new Empleado(ide, tipo_ide, nom, ape, tel, direc, correo, codigo, contrasena, nick);
         if (e.insertarEmpleado())
         {
           session.setAttribute("ide", "");
           session.setAttribute("tipo_ide", "");
           session.setAttribute("nom", "");
           session.setAttribute("ape", "");
           session.setAttribute("tel", "");
           session.setAttribute("direc", "");
           session.setAttribute("correo", "");
           session.setAttribute("codigo", "");
           session.setAttribute("contrasena", "");
           session.setAttribute("nick", "");
           
           mensaje = "Empleado registrado con éxito";
           
           request.setAttribute("mensaje", mensaje);
           RequestDispatcher vista = request.getRequestDispatcher("empleado.jsp");
           vista.forward(request, response);
         }
         else
         {
             mensaje = "No fue posible registrar el nuevo empleado";
             request.setAttribute("mensaje", mensaje);
             RequestDispatcher vista = request.getRequestDispatcher("empleado.jsp");
             vista.forward(request, response);
         }
     }
    else
            {
           session.setAttribute("ide", ide);
           session.setAttribute("tipo_ide", tipo_ide);
           session.setAttribute("nom", nom);
           session.setAttribute("ape", ape);
           session.setAttribute("tel", tel);
           session.setAttribute("direc", direc);
           session.setAttribute("correo", correo);
           session.setAttribute("codigo", codigo);
           session.setAttribute("contrasena", contrasena);
           session.setAttribute("nick", nick);
           
           mensaje = "";
           
           request.setAttribute("mensaje", mensaje);
           request.setAttribute("errores", errores);
           RequestDispatcher vista = request.getRequestDispatcher("empleado.jsp");
           vista.include(request, response);
           
            }
        }
          if ("Eliminar".equals(request.getParameter("bteli"))) {
             String ide = request.getParameter("ide");
             String tipo_ide = request.getParameter("tipo_ide");
             String nom = new String(request.getParameter("nom").getBytes("ISO-8859-1"),"UTF-8");
             String ape = new String(request.getParameter("ape").getBytes("ISO-8859-1"),"UTF-8");
             String tel = request.getParameter("tel");
             String direc = request.getParameter("direc");
             String correo = request.getParameter("correo");
             String codigo = request.getParameter("codigo");
             String contrasena = request.getParameter("contrasena");
             String nick = request.getParameter("nick");
            ArrayList errores = new ArrayList();    
            
          if(ide.isEmpty() || tipo_ide.isEmpty() || nom.isEmpty() || ape.isEmpty() || tel.isEmpty() ||direc.isEmpty() || correo.isEmpty() || codigo.isEmpty() || contrasena.isEmpty() || nick.isEmpty())
           {
               errores.add("Para eliminar debe consultar");
           }
           
            String mensaje;
            if (errores.isEmpty()){
            Empleado e = new Empleado();
            e.eliminarEmpleado(ide);  
            session.setAttribute("ide","");
            session.setAttribute("tipo_ide","");
            session.setAttribute("nom","");
            session.setAttribute("ape","");
            session.setAttribute("tel","");
            session.setAttribute("direc","");
            session.setAttribute("correo","");
            session.setAttribute("codigo","");
            session.setAttribute("contrasena","");
            session.setAttribute("nick","");
            
            mensaje = "Registro eliminado con éxito";
            request.setAttribute("mensaje", mensaje);
            RequestDispatcher vista = request.getRequestDispatcher("empleado.jsp");         
            vista.forward(request, response);
            }
             else
            {
           session.setAttribute("ide", ide);
           session.setAttribute("tipo_ide", tipo_ide);
           session.setAttribute("nom", nom);
           session.setAttribute("ape", ape);
           session.setAttribute("tel", tel);
           session.setAttribute("direc", direc);
           session.setAttribute("correo", correo);
           session.setAttribute("codigo", codigo);
           session.setAttribute("contrasena", contrasena);
           session.setAttribute("nick", nick);
           
           mensaje = "";
           
           request.setAttribute("mensaje", mensaje);
           request.setAttribute("errores", errores);
           RequestDispatcher vista = request.getRequestDispatcher("empleado.jsp");
           vista.include(request, response);
           
            }
            
        }
           
        else if ("Modificar".equals(request.getParameter("btmod"))) {
           
            String ide = request.getParameter("ide").trim();
            String tipo_ide = request.getParameter("tipo_ide");
            String nom = request.getParameter("nom");
            String ape = request.getParameter("ape");
            String tel = request.getParameter("tel");
            String direc = request.getParameter("direc");
            String correo = request.getParameter("correo");
            String codigo = request.getParameter("codigo");
            String contrasena = request.getParameter("contrasena");
            String nick = request.getParameter("nick");
            
              ArrayList errores = new ArrayList();
              
           if(ide.isEmpty() || tipo_ide.isEmpty() || nom.isEmpty() || ape.isEmpty() || tel.isEmpty() ||direc.isEmpty() || correo.isEmpty() || codigo.isEmpty() || contrasena.isEmpty() || nick.isEmpty())
           {
               errores.add("Para modificar debe consultar");
           }
     
                  
             String mensaje;
          if (errores.isEmpty()){
            Empleado e = new Empleado(ide,tipo_ide,nom,ape,tel,direc,correo,codigo,contrasena,nick);
            e.modificarEmpleado();
            session.setAttribute("ide","");
            session.setAttribute("tipo_ide","");
            session.setAttribute("nom","");
            session.setAttribute("ape","");
            session.setAttribute("tel","");
            session.setAttribute("direc","");
            session.setAttribute("correo","");
            session.setAttribute("codigo","");
            session.setAttribute("contrasena","");
            session.setAttribute("nick","");
            
            mensaje = "Registro modificado con éxito";
            request.setAttribute("mensaje", mensaje);
            RequestDispatcher vista = request.getRequestDispatcher("empleado.jsp");
            vista.forward(request, response);
          }
          else
            {
            session.setAttribute("ide",ide);
            session.setAttribute("tipo_ide",tipo_ide);
            session.setAttribute("nom",nom);
            session.setAttribute("ape",ape);
            session.setAttribute("tel",tel);
            session.setAttribute("direc",direc);
            session.setAttribute("correo",correo);
            session.setAttribute("codigo",codigo);
            session.setAttribute("contrasena",contrasena);
            session.setAttribute("nick",nick);
           
           mensaje = "";
           request.setAttribute("mensaje", mensaje);
           request.setAttribute("errores", errores);
           RequestDispatcher vista = request.getRequestDispatcher("empleado.jsp");
           vista.include(request, response);
           
            }
        }
        else if ("Consultar".equals(request.getParameter("btcon")))
        {
             String ide = request.getParameter("ide");
             ArrayList errores = new ArrayList();
            
          
             
               if (ide.isEmpty()){
                errores.add("Falta ingresar la identificación");
            }
            
            if (errores.isEmpty())
            {   
                Empleado e = new Empleado();
                
                
                ArrayList lista = (ArrayList)e.buscarEmpleado(ide);
                request.setAttribute("lista", lista);
                
                for(int i=0; i<lista.size();i++)
                {
                    e=(Empleado)lista.get(i);
                    session.setAttribute("ide",e.getIde());
                    session.setAttribute("tipo_ide",e.getTipoid());
                    session.setAttribute("nom",e.getNom());
                    session.setAttribute("ape",e.getApe());
                    session.setAttribute("tel",e.getTel());
                    session.setAttribute("direc",e.getDirec());
                    session.setAttribute("correo",e.getCorreo());
                    session.setAttribute("codigo",e.getCodigo());
                    session.setAttribute("contrasena",e.getCon());
                    session.setAttribute("nick",e.getNick());
        
                }
                RequestDispatcher vista = request.getRequestDispatcher("empleado.jsp");
                vista.forward(request, response);
            }
        }
    }      
           
    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">

    /**
     * Handles the HTTP
     * <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        try {
            processRequest(request, response);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(ControladorEmpleado.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    /**
     * Handles the HTTP
     * <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        try {
            processRequest(request, response);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(ControladorEmpleado.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}